package 题目集.数学;

import java.util.Scanner;

public class 最大公约数与最小公倍数 {
    /**
     * 求多个数的最小公倍数
     * @param args
     */
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        int b = sc.nextInt();
        int c = sc.nextInt();
        int lcm = lcm(a, b);
        lcm = lcm(lcm, c);
        System.out.println(lcm);
    }

    /**
     * 最小公倍数
     * 两个数的最小公倍数=两数的乘积/最大公约数
     * 多个数的最小公倍数，我们可以先求出前两个数的最小公倍数(a)，再用这个最小公倍数(a)与下一个数求出它们的最小公倍数(b)，不断循环直到计算完所有数。
     */
    public static int lcm(int a, int b) {
        return (a * b) / gcd(a, b);
    }

    /**
     * 辗转相除法求最大公约数
     * 多个数的最大公约数：
     *      我们可以先求出前两个数的最大公约数(a)，再用这个最大公约数(a)与下一个数求出它们的最大公约数(b)，不断循环直到计算完所有数。
     * @param a
     * @param b
     * @return
     */
    public static int gcd(int a, int b) {
        return b == 0 ? a : gcd(b, a % b);
    }
}
